/*****************************************************************************
*  Copyright Statement:
*  --------------------
*  This software is protected by Copyright and the information contained
*  herein is confidential. The software may not be copied and the information
*  contained herein may not be used or disclosed except with the written
*  permission of MediaTek Inc. (C) 2005
*
*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
*
*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*****************************************************************************
 *
 * Filename:
 * ---------
 *  GCallSrvDef.h
 *
 * Project:
 * -------- 
 *  MAUI
 *
 * Description:
 * ------------
 *  GSM /3G call service internal type definition
 *
 * Author:
 * -------
 *
 *============================================================================
 *             HISTORY
 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *------------------------------------------------------------------------------
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 *------------------------------------------------------------------------------
 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *============================================================================
 ****************************************************************************/
#ifndef SRV_GCALL_DEF_H
#define SRV_GCALL_DEF_H


#include "custom_phb_config.h" /* MMI_PHB_NAME_LENGTH */
#include "csmcc_common_enums.h" /* csmcc_call_type_enum */

#include "MMIDataType.h"
#include "mmi_res_range_def.h"
#include "l4c2abm_struct.h"


#define SRV_GCALL_MAX_CALL          7
#define SRV_GCALL_MAX_CONF_CALL     5
#define SRV_GCALL_MAX_NUMBER        (MAX_CC_ADDR_LEN+1)
#define SRV_GCALL_MAX_NAME          ((MMI_PHB_NAME_LENGTH+1)*ENCODING_LENGTH)
#define SRV_GCALL_MAX_DTMF_DIGITS   40


#define SRV_GCALL_MO_TEMP_ID        255
#define SRV_GCALL_INVALID_ID        0
#define SRV_GCALL_INVALID_INDEX     255


/* status flag */
#define SRV_GCALL_STATUS_HANGUP_REQUESTED 0x01
#define SRV_GCALL_STATUS_SPLIT_REQUESTED 0x02
#define SRV_GCALL_STATUS_DISCONNECTING 0x04




#define srv_gcall_type_enum         csmcc_call_type_enum


#ifdef __BUILD_DOM__
/* Event id definition */
typedef enum
{
    EVT_ID_SRV_GCALL_ACT = GCALL_BASE + 1, /* srv_gcall_act_evt_struct, must return MMIO_RET_OK */
    EVT_ID_SRV_GCALL_CNF, /* srv_gcall_cnf_evt_struct, must return MMIO_RET_OK */
    EVT_ID_SRV_GCALL_TOTAL
} srv_gcall_event_enum;
#endif /* __BUILD_DOM__ */




/* error cause */
/* gcall specific causes */
#define SRV_GCALL_RESULT_ERROR_BASE                         (SIM_CAUSE_END+1) /* 2574 */
#define SRV_GCALL_RESULT_OK                                 (SRV_GCALL_RESULT_ERROR_BASE+1)
#define SRV_GCALL_RESULT_IGNORE                             (SRV_GCALL_RESULT_ERROR_BASE+2)
#define SRV_GCALL_RESULT_UNSPECIFIED_ERR                    (SRV_GCALL_RESULT_ERROR_BASE+3)
#define SRV_GCALL_RESULT_NOT_SUPPORT                        (SRV_GCALL_RESULT_ERROR_BASE+4)
#define SRV_GCALL_RESULT_BUSY                               (SRV_GCALL_RESULT_ERROR_BASE+5)
#define SRV_GCALL_RESULT_MT_DATA_CALL_FAIL                  (SRV_GCALL_RESULT_ERROR_BASE+6)
#define SRV_GCALL_RESULT_DISALLOW_MORE_CALL                 (SRV_GCALL_RESULT_ERROR_BASE+7)
#define SRV_GCALL_RESULT_EMPTY_NUMBER                       (SRV_GCALL_RESULT_ERROR_BASE+8)
#define SRV_GCALL_RESULT_ECC_ONLY                           (SRV_GCALL_RESULT_ERROR_BASE+9)


#define SRV_GCALL_RESULT_L4C_GEN_CAUSE                      CM_L4C_GEN_CAUSE
#define SRV_GCALL_RESULT_L4C_FDN_FAIL                       PHB_CAUSE_FDN_BLOCKED
#define SRV_GCALL_RESULT_UNASSIGNED_NUM                     CM_UNASSIGNED_NUM
#define SRV_GCALL_RESULT_INVALID_NUMBER_FORMAT              CM_INVALID_NUMBER_FORMAT
#define SRV_GCALL_RESULT_NO_ROUTE_TO_DESTINATION            CM_NO_ROUTE_TO_DESTINATION
#define SRV_GCALL_RESULT_CALL_REJECTED                      CM_CALL_REJECTED
#define SRV_GCALL_RESULT_DEST_OUT_OF_ORDER                  CM_DEST_OUT_OF_ORDER
#define SRV_GCALL_RESULT_FACILITY_REJECT                    CM_FACILITY_REJECT
#define SRV_GCALL_RESULT_TEMPORARY_FAILURE                  CM_TEMPORARY_FAILURE
#define SRV_GCALL_RESULT_SWITCH_EQUIPMENT_CONGESTION        CM_SWITCH_EQUIPMENT_CONGESTION
#define SRV_GCALL_RESULT_REQ_FAC_NOT_SUBS                   CM_REQ_FAC_NOT_SUBS
#define SRV_GCALL_RESULT_SER_UNAVAILABLE                    CM_SER_UNAVAILABLE
#define SRV_GCALL_RESULT_BEARER_SER_UNIMPL                  CM_BEARER_SER_UNIMPL
#define SRV_GCALL_RESULT_INVALID_TI_VALUE                   CM_INVALID_TI_VALUE
#define SRV_GCALL_RESULT_USER_NOT_IN_CUG                    CM_USER_NOT_IN_CUG
#define SRV_GCALL_RESULT_INCOMPATIBLE_DEST                  CM_INCOMPATIBLE_DEST
#define SRV_GCALL_RESULT_SEMANTIC_ERR                       CM_SEMANTIC_ERR
#define SRV_GCALL_RESULT_INTER_WRK_UNSPECIFIED              CM_INTER_WRK_UNSPECIFIED
#define SRV_GCALL_RESULT_CHANNEL_UN_ACCP                    CM_CHANNEL_UN_ACCP
#define SRV_GCALL_RESULT_NO_CIRCUIT_CHANNEL_AVAIL           CM_NO_CIRCUIT_CHANNEL_AVAIL
#define SRV_GCALL_RESULT_NETWORK_OUT_OF_ORDER               CM_NETWORK_OUT_OF_ORDER
#define SRV_GCALL_RESULT_QOS_UNAVAIL                        CM_QOS_UNAVAIL
#define SRV_GCALL_RESULT_INVALID_TRANSIT_NW_SEL             CM_INVALID_TRANSIT_NW_SEL
#define SRV_GCALL_RESULT_REQUESTED_CKT_CHANEL_NOT_AVIL      CM_REQUESTED_CKT_CHANEL_NOT_AVIL
#define SRV_GCALL_RESULT_RESOURCE_UNAVAIL_UNSPECIFIED       CM_RESOURCE_UNAVAIL_UNSPECIFIED
#define SRV_GCALL_RESULT_OPR_DTR_BARRING                    CM_OPR_DTR_BARRING
#define SRV_GCALL_RESULT_CALL_BARRED                        CM_CALL_BARRED
#define SRV_GCALL_RESULT_IC_BAR_CUG                         CM_IC_BAR_CUG
#define SRV_GCALL_RESULT_BEARER_CAP_NOT_AUTHORISED          CM_BEARER_CAP_NOT_AUTHORISED
#define SRV_GCALL_RESULT_BEARER_CAP_NOT_AVAIL               CM_BEARER_CAP_NOT_AVAIL
#define SRV_GCALL_RESULT_USER_BUSY                          CM_USER_BUSY
#define SRV_GCALL_RESULT_NO_USER_RESPONDING                 CM_NO_USER_RESPONDING
#define SRV_GCALL_RESULT_NO_ANSWER_ON_ALERT                 CM_NO_ANSWER_ON_ALERT
#define SRV_GCALL_RESULT_ACM_EXCEEDED                       CM_ACM_EXCEEDED
#define SRV_GCALL_RESULT_REQ_FACILITY_UNAVAIL               CM_REQ_FACILITY_UNAVAIL
#define SRV_GCALL_RESULT_RESERVED                           CM_RESERVED
#define SRV_GCALL_RESULT_NORMAL_CALL_CLR                    CM_NORMAL_CALL_CLR
#define SRV_GCALL_RESULT_NUMBER_CHANGED                     CM_NUMBER_CHANGED
#define SRV_GCALL_RESULT_PRE_EMPTION                        CM_PRE_EMPTION
#define SRV_GCALL_RESULT_NON_SEL_USER_CLEAR                 CM_NON_SEL_USER_CLEAR
#define SRV_GCALL_RESULT_RES_STATUS_ENQ                     CM_RES_STATUS_ENQ
#define SRV_GCALL_RESULT_NORMAL_UNSPECIFIED                 CM_NORMAL_UNSPECIFIED
#define SRV_GCALL_RESULT_ACCESS_INFO_DISCARDED              CM_ACCESS_INFO_DISCARDED
#define SRV_GCALL_RESULT_RESTR_DIGITAL_INFO                 CM_RESTR_DIGITAL_INFO
#define SRV_GCALL_RESULT_SER_OPT_UNIMPL                     CM_SER_OPT_UNIMPL
#define SRV_GCALL_RESULT_INVALID_MANDATORY_INF              CM_INVALID_MANDATORY_INF
#define SRV_GCALL_RESULT_MSG_TYPE_UNIMPL                    CM_MSG_TYPE_UNIMPL
#define SRV_GCALL_RESULT_MSG_TYPE_NOT_COMPATIBLE            CM_MSG_TYPE_NOT_COMPATIBLE
#define SRV_GCALL_RESULT_IE_NON_EX                          CM_IE_NON_EX
#define SRV_GCALL_RESULT_COND_IE_ERR                        CM_COND_IE_ERR
#define SRV_GCALL_RESULT_INCOMP_MESG_WITH_STATE             CM_INCOMP_MESG_WITH_STATE
#define SRV_GCALL_RESULT_RECOVERY_ON_TIMER_EXPIRY           CM_RECOVERY_ON_TIMER_EXPIRY
#define SRV_GCALL_RESULT_PROTOCOL_ERR_UNSPECIFIED           CM_PROTOCOL_ERR_UNSPECIFIED

#define SRV_GCALL_RESULT_CSMCC_CMD_NOT_ALLOW                CSMCC_CMD_NOT_ALLOW
#define SRV_GCALL_RESULT_CSMCC_ILLEGAL_CALL_ID              CSMCC_ILLEGAL_CALL_ID
#define SRV_GCALL_RESULT_CSMCC_CALL_ALLOC_FAIL              CSMCC_CALL_ALLOC_FAIL
#define SRV_GCALL_RESULT_CSMCC_BC_FILL_FAIL                 CSMCC_BC_FILL_FAIL
#define SRV_GCALL_RESULT_CSMCC_CALL_RE_EST                  CSMCC_CALL_RE_EST
#define SRV_GCALL_RESULT_CSMCC_ILLEGAL_DTMF_TONE            CSMCC_ILLEGAL_DTMF_TONE
#define SRV_GCALL_RESULT_CSMCC_ILLEGAL_BC                   CSMCC_ILLEGAL_BC
#define SRV_GCALL_RESULT_CSMCC_MODIFY_ACTUAL_MODE           CSMCC_MODIFY_ACTUAL_MODE
#define SRV_GCALL_RESULT_CSMCC_DATA_ACT_FAIL                CSMCC_DATA_ACT_FAIL
#define SRV_GCALL_RESULT_CSMCC_NO_RESPONSE_FROM_NW          CSMCC_NO_RESPONSE_FROM_NW
#define SRV_GCALL_RESULT_CSMCC_CALL_ACCEPT_NOT_ALLOW        CSMCC_CALL_ACCEPT_NOT_ALLOW

#define SRV_GCALL_RESULT_NETWORK_FAILURE                    CM_MM_NETWORK_FAILURE
#define SRV_GCALL_RESULT_IE_NOT_IMPLEMENTED                 CM_MM_IE_NOT_IMPLEMENTED
#define SRV_GCALL_RESULT_CONDITIONAL_MM_IE_ERROR            CM_MM_CONDITIONAL_MM_IE_ERROR
#define SRV_GCALL_RESULT_MS_ID_NOT_DERIVED_BY_NW            CM_MM_MS_ID_NOT_DERIVED_BY_NW
#define SRV_GCALL_RESULT_IMPLICIT_DETACH                    CM_MM_IMPLICIT_DETACH
#define SRV_GCALL_RESULT_MSG_NOT_COMPAT_WITH_PROTO_STATE    CM_MM_MSG_NOT_COMPAT_WITH_PROTO_STATE
#define SRV_GCALL_RESULT_PROTO_ERROR_UNSPECIFIED            CM_MM_PROTO_ERROR_UNSPECIFIED
#define SRV_GCALL_RESULT_IMSI_UNKNOWN_IN_HLR                CM_MM_IMSI_UNKNOWN_IN_HLR
#define SRV_GCALL_RESULT_IMSI_UNKNOWN_IN_VLR                CM_MM_IMSI_UNKNOWN_IN_VLR
#define SRV_GCALL_RESULT_IMEI_NOT_ACCEPTED                  CM_MM_IMEI_NOT_ACCEPTED
#define SRV_GCALL_RESULT_GPRS_NOT_ALLOWED                   CM_MM_GPRS_NOT_ALLOWED
#define SRV_GCALL_RESULT_GPRS_NON_GPRS_NOT_ALLOWED          CM_MM_GPRS_NON_GPRS_NOT_ALLOWED
#define SRV_GCALL_RESULT_PLMN_NOT_ALLOWED                   CM_MM_PLMN_NOT_ALLOWED
#define SRV_GCALL_RESULT_LOCATION_AREA_NOT_ALLOWED          CM_MM_LOCATION_AREA_NOT_ALLOWED
#define SRV_GCALL_RESULT_ROAMING_AREA_NOT_ALLOWED           CM_MM_ROAMING_AREA_NOT_ALLOWED
#define SRV_GCALL_RESULT_GPRS_NOT_ALLOWED_IN_PLMN           CM_MM_GPRS_NOT_ALLOWED_IN_PLMN
#define SRV_GCALL_RESULT_NO_SUITABLE_CELLS_IN_LA            CM_MM_NO_SUITABLE_CELLS_IN_LA
#define SRV_GCALL_RESULT_MSC_TEMP_NOT_REACHABLE             CM_MM_MSC_TEMP_NOT_REACHABLE
#define SRV_GCALL_RESULT_SERV_OPTION_NOT_SUPPORTED          CM_MM_SERV_OPTION_NOT_SUPPORTED
#define SRV_GCALL_RESULT_REQ_SERV_OPTION_NOT_SUBSCRIBED     CM_MM_REQ_SERV_OPTION_NOT_SUBSCRIBED
#define SRV_GCALL_RESULT_SERV_OPTION_TEMP_OUT_OF_ORDER      CM_MM_SERV_OPTION_TEMP_OUT_OF_ORDER
#define SRV_GCALL_RESULT_CALL_CANNOT_BE_IDENTIFIED          CM_MM_CALL_CANNOT_BE_IDENTIFIED
#define SRV_GCALL_RESULT_NO_PDP_CONTEXT_ACTIVATED           CM_MM_NO_PDP_CONTEXT_ACTIVATED
#define SRV_GCALL_RESULT_SEMANTICALLY_INCORRECT_MSG         CM_MM_SEMANTICALLY_INCORRECT_MSG
#define SRV_GCALL_RESULT_INVALID_MM_MAND_INFO               CM_MM_INVALID_MM_MAND_INFO
#define SRV_GCALL_RESULT_MSG_TYPE_NON_EXISTENT              CM_MM_MSG_TYPE_NON_EXISTENT
#define SRV_GCALL_RESULT_MSG_TYPE_NOT_IMPLEMENTED           CM_MM_MSG_TYPE_NOT_IMPLEMENTED
#define SRV_GCALL_RESULT_MSG_TYPE_INCOMPAT_WITH_PROTO_STATE CM_MM_MSG_TYPE_INCOMPAT_WITH_PROTO_STATE
#define SRV_GCALL_RESULT_ACCESS_CLASS_BARRED                CM_MM_ACCESS_CLASS_BARRED
#define SRV_GCALL_RESULT_ILLEGAL_MS                         CM_MM_ILLEGAL_MS
#define SRV_GCALL_RESULT_ILLEGAL_ME                         CM_MM_ILLEGAL_ME
#define SRV_GCALL_RESULT_MAC_FAILURE                        CM_MM_MAC_FAILURE
#define SRV_GCALL_RESULT_SYNC_FAILURE                       CM_MM_SYNC_FAILURE
#define SRV_GCALL_RESULT_CONGESTION                         CM_MM_CONGESTION
#define SRV_GCALL_RESULT_RETRY_UPON_ENTRY_INTO_NEWCELL_MIN  CM_MM_RETRY_UPON_ENTRY_INTO_NEWCELL_MIN
#define SRV_GCALL_RESULT_RETRY_UPON_ENTRY_INTO_NEWCELL_MAX  CM_MM_RETRY_UPON_ENTRY_INTO_NEWCELL_MAX
#define SRV_GCALL_RESULT_CM_MM_ACCESS_BARRED                CM_MM_ACCESS_BARRED
#define SRV_GCALL_RESULT_CM_MM_ASSIGNMENT_REJECT            CM_MM_ASSIGNMENT_REJECT
#define SRV_GCALL_RESULT_CM_MM_RANDOM_ACCES_FAILURE         CM_MM_RANDOM_ACCES_FAILURE
#define SRV_GCALL_RESULT_CM_MM_RR_NO_SERVICE                CM_MM_RR_NO_SERVICE
#define SRV_GCALL_RESULT_CM_MM_RR_CONN_RELEASE              CM_MM_RR_CONN_RELEASE
#define SRV_GCALL_RESULT_CM_MM_AUTH_FAILURE                 CM_MM_AUTH_FAILURE
#define SRV_GCALL_RESULT_CM_MM_IMSI_DETACH                  CM_MM_IMSI_DETACH
#define SRV_GCALL_RESULT_CM_MM_ABORT_BY_NW                  CM_MM_ABORT_BY_NW
#define SRV_GCALL_RESULT_CM_MM_CONN_TIMEOUT                 CM_MM_CONN_TIMEOUT
#define SRV_GCALL_RESULT_CM_MM_CM_ENQUEUE_FAIL              CM_MM_CM_ENQUEUE_FAIL
#define SRV_GCALL_RESULT_CM_MM_NOT_UPDATED                  CM_MM_NOT_UPDATED
#define SRV_GCALL_RESULT_CM_MM_STATE_NOT_ALLOWED_CM         CM_MM_STATE_NOT_ALLOWED_CM
#define SRV_GCALL_RESULT_CM_MM_EMERGENCY_NOT_ALLOWED        CM_MM_EMERGENCY_NOT_ALLOWED
#define SRV_GCALL_RESULT_CM_MM_NO_SERVICE                   CM_MM_NO_SERVICE
#define SRV_GCALL_RESULT_CM_MM_CAUSE_NONE                   CM_MM_CAUSE_NONE

#define SRV_GCALL_RESULT_L4C_LOCAL_DISCONNECT_CSD           L4C_LOCAL_DISCONNECT_CSD



typedef enum
{
    SRV_GCALL_CM_EVENT_INVALID = 0,
    SRV_GCALL_CM_EVENT_MT_PRESENT_INIT,
    SRV_GCALL_CM_EVENT_CPI_INIT,
    SRV_GCALL_CM_EVENT_MT_PRESENT_CNF,
    SRV_GCALL_CM_EVENT_ACCEPT,
    SRV_GCALL_CM_EVENT_DIAL_CNF,
    SRV_GCALL_CM_EVENT_DIAL_NORMAL,
#ifdef __SAT__
    SRV_GCALL_CM_EVENT_DIAL_SAT,
#endif /* __SAT__ */
    SRV_GCALL_CM_EVENT_DIAL_CCBS,
    SRV_GCALL_CM_EVENT_END_SINGLE,
    SRV_GCALL_CM_EVENT_END_CONF,
    SRV_GCALL_CM_EVENT_END_ALL,
    SRV_GCALL_CM_EVENT_AUTO_REJECT,
    SRV_GCALL_CM_EVENT_FORCE_RELEASE,
    SRV_GCALL_CM_EVENT_SWAP,
    SRV_GCALL_CM_EVENT_CONF,
    SRV_GCALL_CM_EVENT_SPLIT,
#ifdef __MMI_UCM_ECT__
    SRV_GCALL_CM_EVENT_ECT,
#endif /* __MMI_UCM_ECT__ */
#ifdef __MMI_UCM_DEFLECT__
    SRV_GCALL_CM_EVENT_DEFLECT,
#endif /* __MMI_UCM_DEFLECT__ */
    SRV_GCALL_CM_EVENT_CCBS_RECALL_ACCEPT,
    SRV_GCALL_CM_EVENT_CCBS_RECALL_REJECT,
    SRV_GCALL_CM_EVENT_CCBS_IGNORE,
    SRV_GCALL_CM_EVENT_CCBS_ACTIVATE,

    SRV_GCALL_CM_EVENT_START_DTMF,
    SRV_GCALL_CM_EVENT_STOP_DTMF,
#if (defined(__OP01__) && defined(__MMI_VIDEO_TELEPHONY__))
    SRV_GCALL_CM_EVENT_VT_FALLTO_VOICE_ACT,
#endif /* defined(__OP01__) && defined(__MMI_VIDEO_TELEPHONY__) */
    SRV_GCALL_CM_EVENT_AUTO_DTMF,


    SRV_GCALL_CM_EVENT_TOTAL
} srv_gcall_cm_event_enum;


typedef enum
{
    SRV_GCALL_PS_EVENT_INVALID = 0,
    SRV_GCALL_PS_EVENT_MT_PRESENT,
    SRV_GCALL_PS_EVENT_MT_UPDATE_NAME,
    SRV_GCALL_PS_EVENT_MT_ALERT,
    SRV_GCALL_PS_EVENT_DIAL_CNF_IND,
    SRV_GCALL_PS_EVENT_MT_CONNECTED,
    SRV_GCALL_PS_EVENT_MT_CONNECT_FAIL,
    SRV_GCALL_PS_EVENT_DIAL_RSP,
    SRV_GCALL_PS_EVENT_MO_PROCEEDING,
    SRV_GCALL_PS_EVENT_MO_CONNECTED,
    SRV_GCALL_PS_EVENT_REL_OUTGOING,
    SRV_GCALL_PS_EVENT_REL_INCOMING,
    SRV_GCALL_PS_EVENT_REL_PRESENT_CALL,
    SRV_GCALL_PS_EVENT_REL_OTHERS,
#ifdef __MMI_UCM_DEFLECT__
    SRV_GCALL_PS_EVENT_DEFLECT_FAIL,
    SRV_GCALL_PS_EVENT_DEFLECT_SUC,
#endif /* __MMI_UCM_DEFLECT__ */
    SRV_GCALL_PS_EVENT_END_FAIL,
    SRV_GCALL_PS_EVENT_END_SUC,
    SRV_GCALL_PS_EVENT_SWAP_FAIL,
    SRV_GCALL_PS_EVENT_SWAP_SUC,
    SRV_GCALL_PS_EVENT_CONF_FAIL,
    SRV_GCALL_PS_EVENT_CONF_SUC,
    SRV_GCALL_PS_EVENT_SPLIT_FAIL,
    SRV_GCALL_PS_EVENT_SPLIT_SUC,
#ifdef __MMI_UCM_ECT__
    SRV_GCALL_PS_EVENT_ECT_FAIL,
    SRV_GCALL_PS_EVENT_ECT_SUC,
#endif /* __MMI_UCM_ECT__ */
    SRV_GCALL_PS_EVENT_SYNC_CALL_LIST,
    SRV_GCALL_PS_EVENT_CCBS_RECALL,
    SRV_GCALL_PS_EVENT_CCBS_RECALL_CANCEL,
    SRV_GCALL_PS_EVENT_CCBS_ACCEPT_RES,
    SRV_GCALL_PS_EVENT_CCBS_ACTIVATE_FAIL,
    SRV_GCALL_PS_EVENT_CCBS_ACTIVATE_SUC,
    SRV_GCALL_PS_EVENT_CCBS_ACTIVATE_CNF_IND,
    SRV_GCALL_PS_EVENT_DISCONNECTING,
    SRV_GCALL_PS_EVENT_SPEECH,
    SRV_GCALL_PS_EVENT_MO_ALERT,
    SRV_GCALL_PS_EVENT_AUTO_DTMF,
#ifdef __AOC_SUPPORT__
    SRV_GCALL_PS_EVENT_UPDATE_CALL_COST,
#endif /* __AOC_SUPPORT__ */
    SRV_GCALL_PS_EVENT_SS_NOTIFY,
    SRV_GCALL_PS_EVENT_MAKE_CALL_REQ_IND,
    SRV_GCALL_PS_EVENT_CALL_SYNC_REQ_IND,
    SRV_GCALL_PS_EVENT_CHANGE_NW_STATUS,
#ifdef __CPI_SUPPORT__
    SRV_GCALL_PS_EVENT_MO_ID_ASSIGNED,
    SRV_GCALL_PS_EVENT_CHANGE_CALL_STATE,
#endif /* __CPI_SUPPORT__ */

    SRV_GCALL_PS_EVENT_TOTAL
} srv_gcall_ps_event_enum;

typedef enum
{
    SRV_GCALL_STATE_IDLE,
    SRV_GCALL_STATE_OUTGOING,
    SRV_GCALL_STATE_INCOMING,
    SRV_GCALL_STATE_ACTIVE,
    SRV_GCALL_STATE_HOLD,
    SRV_GCALL_STATE_TOTAL
} srv_gcall_state_enum;


typedef enum
{
    SRV_GCALL_DIR_UNKNOWN = 0,
    SRV_GCALL_DIR_MO,
    SRV_GCALL_DIR_MT,
    SRV_GCALL_DIR_MO_STK, /* SAT call or call control by sim */
    SRV_GCALL_DIR_END
} srv_gcall_dir_enum;


typedef enum
{
    SRV_GCALL_CALL_INFO_BY_CALL_ID,
    SRV_GCALL_CALL_INFO_BY_GROUP_ID,
    SRV_GCALL_CALL_INFO_BY_STATE,
    SRV_GCALL_CALL_INFO_BY_CALL_TYPE,
    SRV_GCALL_CALL_INFO_END
} srv_gcall_call_info_op_enum;


#ifdef __CCBS_SUPPORT__
typedef enum 
{
    SRV_GCALL_CCBS_STATE_IDLE = 0,
    SRV_GCALL_CCBS_STATE_ACTIVATE_CNF,
    SRV_GCALL_CCBS_STATE_RECALL,
    SRV_GCALL_CCBS_STATE_ACCEPTED,
    SRV_GCALL_CCBS_STATE_END
} srv_gcall_ccbs_state_enum;
#endif /* __CCBS_SUPPORT__ */



#endif /* SRV_GCALL_DEF_H */ 

